CM re:Growth 2014 Sapporoで「ビックデータ解析基盤としてのAWS」について話しました #cmdevio
ビックデータ解析基盤としてのAWS と題しまして、「カスタマーストーリー」を支える技術についてお話しました。
発表スライド
カスタマーストーリー
弊社では、販売データ(POS)やモバイルログを始めとする、企業に存在する様々なデータを集約し、様々な角度から顧客理解を深める、ビックデータ分析基盤を提供しています。
AWSのビックデータ関連サービス
ビックデータサービスに関連する基本的なAWSサービスのおさらいと注目の新サービスについてご紹介しました。中でも注目の新サービスは以下の3つです。
AWS Lambda
AWS上のイベントをトリガーに、独自のコードを実行させることができるComputeサービスです。S3へのPUT、Kinesisのストリーム入力、CLI呼び出しなどをトリガに独自のコードを実行できます。 LambdaはAWSサービスをより簡潔に連携させる手段として有効ですが、条件によってリトライさせる場合はフルマネージメントサービスであるData Pipelineとの連携が有効です。更に細かな条件や制御をしたい場合はAWS SDKと組み合わせてセルフマネジメントという順にソリューションが展開されています。
S3 Event Notification
S3でPUTなどのイベントが発生した際に、SNS/SQS/Lambdaへ通知・呼び出しができるようになりました。 イベントはバケット毎に設定可能です。従来では、EC2でWrite Proxy動作させてファイルイベントをフックする必要がありましたが、直接S3のイベントをフックできるようになりました。
Amazon RDS for Aurora
クラウドのために再発明したRDBと、言われています。まだ、Preview段階ですが、DWH用途ではRedshiftの方が”Cost Effective”ではないかと予想しています。一方、RedshiftはPrimaryKeyは名ばかり(ユニークキー制約が機能しない)、インデックスキーは sortkeyのみ、非冗長化のシングルAZなので、要件によっては Auroraがマッチする可能性があるがあるのではないかと考えられます。 ※ 一般的にビックデータ関連サービスはデータの永続化よりも スケールアウトに重点が置かれています。
高速で大容量なAmazon Redshift
RedshiftはAWS提供するフルマネージメントのDWHサービスです。インタフェースはPostgreSQL互換であるので、学習コストが少なく、BIツールやETLツールとの連携できることが強みです。また、S3からの高速ロード・アンロードが可能なので、ビックデータのデータファイルをストレスなく取り込むことが可能です。
- 大容量:160GB〜1.6PB
- 高速:カラムナ型+列圧縮、超並列演算(MPP)
- インスタンスの従量課金(ライセンス不要)
集計処理(group by)の圧倒的な速さやクラスタ数の増加に比例してスケールする性能特性は、一般的なRDB経験者がこれまで経験したことのない特長でしょう。
データ解析基盤の導入パターン
例.収集した売上データの活用 - BI(ビジネス・インテリジェンス)
各店舗から集められた売上データ(ファクトテーブル)と本店で管理している各種マスタ(ディシジョンテーブル)をS3にオリジナルデータとして保存します。集められた構造化/半構造化データをRedshiftに取り込むための処理と変換するETLをEC2やEMRで行います。ETL済みデータをCOPYコマンドでRedshiftに取り込み、分析軸に応じたデータマートを作成します。Tableauを始めとするBIツールを用いてデータ分析します。中間データはS3に保存することで複数のクラスタに分散したり、分析を途中からやり直す場合に有効です。
例.収集したデータの活用 - DMP(データ・マネジメント・プラットフォーム)
Webサーバーやモバイルクライアントをはじめ、IoTといったセンサーデバイスからの入力を分析、保存したデータをWebAPIとして提供するといった、データ活用ビジネスとして注目を集めるデータマネジメントプラットフォーム(DMP)ではこのような構成を取るケースが多くあります。 ログコレクタで収集したデータをS3にオリジナルデータとして保存します。集められた構造化/半構造化データをRedshift/DynamoDBに取り込むための処理と変換するETLをEMRで行います。Redshift/DynamoDBに格納されたデータからレポートやWebAPIとして利用者に提供されます。
データ分析の課題
先ほどご紹介した「収集した売上データ」の例ですが、データ分析において、ETLが全体の作業7割を 占めると言われています。
・ETL(データクレンジング、連結、一次集計、データマー ト)は手間と時間を要する ・エンジニアがこれらの作業を代行すると事前に分析内容を定めなければならない ・分析内容の固定化・分析経過のフィードバックが容易でない ・結果として、データ分析に基づいた仮設・検証サイクルを 迅速に回せなくなる
⇒ 分析内容の固定化は経験的な分析を数値化する価値があるが、新たな課題や施策に必要なデータの発見には至れない
ETLプロセスの見直し
Data Pipeline
AWSが提供するETLをスケジュールベースで自動化してくれるサービスです。ETL処理のエラーハンドリング、リトライといったデータフローまで定義し、スケジュール実行できます。 データ移動や処理の全体を管理するアクテビティと、入出力データを定義するデータノードを作成し、タスクを実行するEC2インスタンスをリソース指定します。依存関係の設定や順序実行、スケジュールの管理等を行います。
※イベントドリブンの処理は、Lambdaとの連携を検討してください。
ETLツールの活用 - Alteryx
本来データサイエンティスト行う高度なデータ分析をグラフィカルな設定で自動化するツールです。中でも、Alteryxは予測分析とデータブレンディングができます。予測分析では、時系列予測やバスケット分析、クラスター分析などの高度な予測分析を簡易なUI操作で実現できます。 データブレンディングでは、FacebookやTwitter、SalesforceやMarketoなどの外部サービスのデータと連携した分析が可能です。
- データの入出力にS3やRedshiftが指定可能
- 予測分析やバスケット分析といった高度な分析が可能
- 分析結果を直接BIツール(Tableau)のファイルに出力できる
Alteryxのデモは、東京で開催されたre:Growth 2014 TOKYOのレポートをご参照ください。
【AWS勉強会】CM re:Growth 2014 TOKYOでAlteryxの紹介とデモした
まとめ
- オリジナル・中間データはS3に保存する
- オリジナルデータのクレンジングはEC2やEMR
- 処理されたデータはRedshiftに格納・利用することでBIツールやETLツールと連携
- Redshiftはデータ連結、一次集計、マート作成を高 速に生成・ETLのオーケストレーションはData
- Pipeline、データサイエンティストに求められる高度な分析は Alteryxを始めとするETLツールを活用
カスタマーストーリーで「データ分析の民主化」をお手伝い致します!